package cn.itsource.blog.service;

import cn.itsource.blog.domain.Article;
import cn.itsource.blog.dto.ArticleDto;
import cn.itsource.blog.query.ArticleQuery;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 业务接口：文章Article
 */
public interface IArticleService {
    /**
     * 查询所有
     * @return
     */
    List<Article> findAll();

    /**
     * 查询单个
     * @param id
     * @return
     */
    Article findOne(Long id);

    /**
     * 添加
     * @param article
     */
    void add(Article article);

    /**
     * 修改
     * @param article
     */
    void update(Article article);

    /**
     * 删除
     * @param id
     */
    void delete(Long id);

    /**
     * 批量删除
     * @param ids
     */
    void patchDel(Long[] ids);

    /**
     * 高级查询+分页查询
     * @param articleQuery
     * @return
     */
    PageInfo<Article> queryPage(ArticleQuery articleQuery);

    List<ArticleDto> countByArticleType();

    List<ArticleDto> countByTime();

    List<Article> dependencyArticle(Long id);
}
